﻿using System.Collections.Generic;

namespace HossMvp.Core
{
    //public interface IModelManager<TModel, TProvider>
    //    where TModel : IPresentableModel<TProvider>
    //    where TProvider : IContentProvider
    public interface IModelManager<TModel> where TModel : AbstractModel
    {
        //IPresentableModel<IContentProvider>
        TModel Create<T>(params object[] args) where T : TModel;

        void Remove(TModel model);

        void Clear();

        IEnumerable<TModel> Models { get; }

        IPresenter<AbstractModelManager, AbstractViewManager> Presenter { get; set; }

        ICommand GetCommand(string name);
    }
}